This invention relates generally to electric motors, and more particularly to methods and apparatus for fine resolution control of electric motors.
Electric motors are used in many different types of applications. Some of these applications allow low precision motor control and in these applications low-cost motors and motor controllers may be used. For example one well-known technique applicable to systems that require a constant motor speed performs rate control using low-cost digital Hall-effect sensors. The outputs of these sensors are used to determine motor position and velocity. When the rotor of the motor rotates to a certain position the digital Hall effect sensors change state and trigger the commutation logic to switch the drivers into the next state. The switching can also be used for rate control.
Other applications such as autopilot servo systems require much more precise control. The problem is compounded by the fact that these systems often use brushless motors to decrease the inertia in the rotor for quick speed adjustment. However because of their lower inertia brushless motors are subject to a jerky motion that may be caused by the control loop. This jerky motion can be felt by passengers and is highly undesirable.
There are several known techniques for improving the precision of the motor control loops. The whole control loop may be made as a servo system, but such a system is large and expensive. Additional sensors may be used, such as optical sensors, additional Hall-effect sensors, or tachometers. These additional sensors make the systems more expensive.
Another technique uses analog Hall-effect sensors. According to this technique the analog Hall-effect sensors are used to form the sine and cosine functions of the rotor position. The ratio of the sine to cosine then forms the tangent, and the arctangent of the sine/cosine ratio can be used to calculate motor position and derived rate. However this method exhibits periodic errors and can result in motor speed fluctuations when used in a motor control loop, and thus is not useful in systems that need precise control.